@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo.
echo ════════════════════════════════════════════
echo   诊断第三方应用获取位置问题
echo ════════════════════════════════════════════
echo.

echo [步骤1] 查看当前系统位置状态
echo ════════════════════════════════════════════
echo.
adb shell dumpsys location | findstr /C:"gps provider" /C:"network provider" | findstr /C:"last location" /C:"mock"
echo.

echo [步骤2] 查看我们的模拟位置应用状态
echo ════════════════════════════════════════════
echo.
adb logcat -d | findstr "MockLocationProvider" | findstr "设置模拟位置" | more +1000
echo.

echo [步骤3] 模拟第三方应用获取位置
echo ════════════════════════════════════════════
echo.
echo 创建测试代码...
adb shell "cat > /sdcard/test_location.sh << 'EOF'
# 模拟第三方应用获取位置
dumpsys location | grep -A 5 'gps provider' | grep 'last location'
EOF"
echo.
echo 执行测试...
adb shell "dumpsys location | grep -A 10 'gps provider'"
echo.

echo [步骤4] 检查是否有其他定位服务干扰
echo ════════════════════════════════════════════
echo.
echo 检查 Fused Location Provider...
adb shell dumpsys location | findstr "fused"
echo.
echo 检查 Google Play Services...
adb shell "pm list packages | grep google"
echo.

echo [步骤5] 查看最近访问位置的应用
echo ════════════════════════════════════════════
echo.
adb shell dumpsys location | findstr "Recent location" -A 20
echo.

echo.
echo ════════════════════════════════════════════
echo   诊断完成
echo ════════════════════════════════════════════
echo.
echo 💡 下一步操作：
echo.
echo    方案1: 重启第三方应用
echo      adb shell am force-stop [包名]
echo      然后重新打开该应用
echo.
echo    方案2: 清除第三方应用缓存
echo      设置 - 应用 - 选择应用 - 清除缓存
echo.
echo    方案3: 停止融合定位服务
echo      运行: 修复融合定位服务.bat
echo.
echo    方案4: 重启手机
echo      长按电源键重启
echo.

pause

